# 使用Docker官方的Docker-in-Docker镜像作为基础
FROM docker:28-dind

# 切换到root用户
USER root

# 设置apk镜像源为国内源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 安装SSH服务器和其他必要工具
RUN apk update && apk add --no-cache \
    openssh-server \
    openssh-client \
    sudo \
    bash \
    curl \
    wget \
    vim \
    nano \
    htop \
    git \
    python3 \
    py3-pip \
    nodejs \
    npm \
    tzdata \
    && rm -rf /var/cache/apk/*

# 配置常用命令别名
RUN echo 'alias ll="ls -la"' >> /root/.bashrc && \
    echo 'alias ll="ls -la"' >> /etc/bash.bashrc && \
    echo 'alias ll="ls -la"' >> /etc/profile

# 创建SSH必要的目录
RUN mkdir -p /var/run/sshd /root/.ssh

# 生成SSH主机密钥
RUN ssh-keygen -A

# 配置SSH
RUN echo 'root:root' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
    sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config

# 创建工作目录
WORKDIR /app

# 设置Docker客户端
ENV DOCKER_HOST=unix:///var/run/docker.sock

# 设置默认时区
ENV TZ=Asia/Shanghai

# 设置时区
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 复制启动脚本到容器
COPY start.sh /start.sh
RUN chmod +x /start.sh

# 设置pip镜像源为国内源
RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装Docker Compose (优先使用系统包管理器)
RUN apk add --no-cache docker-compose

# 如果系统包管理器没有docker-compose，则使用pip安装（备用方案）
# RUN pip3 install --break-system-packages docker-compose

# 或者使用curl下载（备用方案）
# RUN curl -L "https://get.daocloud.io/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
#     chmod +x /usr/local/bin/docker-compose

# 暴露端口
EXPOSE 22 2376

# 设置启动命令
CMD ["/start.sh"]